package com.xiaoyung.easyisapisdk.common.workflow.entity;

import java.util.Date;

import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;

public class ProcHiTaskinstEntity {

	//@ApiModelProperty(value = "id")
	private String id;
	
	//@ApiModelProperty(value = "流程定义id")
	private String procDefId;
	
	//@ApiModelProperty(value = "任务节点id")
	private String taskDefKey;
	
	//@ApiModelProperty(value = "流程实例id")
	private String procInstId;
	
	private String executionId;
	
	//@ApiModelProperty(value = "任务名")
	private String name;
	
	private String parentTaskId;
	
	//@ApiModelProperty(value = "任务描述")
	private String description;
	
	//@ApiModelProperty(value = "任务所有者(委托给别人后这里才有值)")
	private String owner;
	
	//@ApiModelProperty(value = "办理人")
	private String assignee;

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	//@ApiModelProperty(value = "开始时间")
	private Date startTime;
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	//@ApiModelProperty(value = "认领时间")
	private Date claimTime;
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	//@ApiModelProperty(value = "完成时间")
	private Date endTime;
	
	//@ApiModelProperty(value = "耗时(秒)")
	private Long duration;
	
	//@ApiModelProperty(value = "作废原因")
	private String deleteReason;
	
	private String priority;
	
	private String dueDate;
	
	//@ApiModelProperty(value = "表单key")
	private String formKey;
	
	//@ApiModelProperty(value = "任务类别(审批|填写)")
	private String category;
	
	//@ApiModelProperty(value = "流程类别")
	private String flowCategory;
	
	/*p.name_ pname_,
	p.deployment_id_,
	p.dgrm_resource_name_,
	pi.start_user_id_*/
	//流程定义属性begin
	//@ApiModelProperty(value = "流程定义")
	private ProcdefEntity procDef;
	
	/*//@ApiModelProperty(value = "流程定义名")
	private String pname;
	
	private String deploymentId;
	
	private String dgrmResourceName;
	
	//@ApiModelProperty(value = "流程定义key")
	private String key;
	
	//@ApiModelProperty(value = "流程定义版本")
	private String version;*/
	
	//流程定义属性end 
	
	//流程实例属性begin
	//@ApiModelProperty(value = "流程实例")
	private ProcHiProcinstEntity procInstance;
	
	
	/*//@ApiModelProperty(value = "流程实例名")
	private String piname;
	
	//@ApiModelProperty(value = "流程实例发起人")
	private String startUserId;*/

	//流程实例属性end

	private Integer suspensionState;// rutask 才有
	
	//委派状态 PENDING待委派人处理,RESOLVED委派人已处理
	private String delegation;//rutask 才有
	
	// private String ztime;
	private String candidateUserIds;//候选人 多个则逗号隔开
	private String candidateGroupIds;//候选组 多个则逗号隔开
	
	
	//[{field_name: "id", setting: "只读|填写|必填|隐藏"}]
	/*//@ApiModelProperty(value = "表单字段设置",example = "[{field_name: \"id\", setting: \"只读|填写|必填|隐藏\"}]")
	private JSONArray formFieldsSetting;*/
	
	//@ApiModelProperty(value = "流程模型节点")
	private JSONObject flowElement;


	public String getId() {
		return id;
	}


	public void setId(String id) {
		this.id = id;
	}


	public String getProcDefId() {
		return procDefId;
	}


	public void setProcDefId(String procDefId) {
		this.procDefId = procDefId;
	}


	public String getTaskDefKey() {
		return taskDefKey;
	}


	public void setTaskDefKey(String taskDefKey) {
		this.taskDefKey = taskDefKey;
	}


	public String getProcInstId() {
		return procInstId;
	}


	public void setProcInstId(String procInstId) {
		this.procInstId = procInstId;
	}


	public String getExecutionId() {
		return executionId;
	}


	public void setExecutionId(String executionId) {
		this.executionId = executionId;
	}


	public String getName() {
		return name;
	}


	public void setName(String name) {
		this.name = name;
	}


	public String getParentTaskId() {
		return parentTaskId;
	}


	public void setParentTaskId(String parentTaskId) {
		this.parentTaskId = parentTaskId;
	}


	public String getDescription() {
		return description;
	}


	public void setDescription(String description) {
		this.description = description;
	}


	public String getOwner() {
		return owner;
	}


	public void setOwner(String owner) {
		this.owner = owner;
	}


	public String getAssignee() {
		return assignee;
	}


	public void setAssignee(String assignee) {
		this.assignee = assignee;
	}


	public Date getStartTime() {
		return startTime;
	}


	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}


	public Date getClaimTime() {
		return claimTime;
	}


	public void setClaimTime(Date claimTime) {
		this.claimTime = claimTime;
	}


	public Date getEndTime() {
		return endTime;
	}


	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}


	public Long getDuration() {
		return duration;
	}


	public void setDuration(Long duration) {
		this.duration = duration;
	}


	public String getDeleteReason() {
		return deleteReason;
	}


	public void setDeleteReason(String deleteReason) {
		this.deleteReason = deleteReason;
	}


	public String getPriority() {
		return priority;
	}


	public void setPriority(String priority) {
		this.priority = priority;
	}


	public String getDueDate() {
		return dueDate;
	}


	public void setDueDate(String dueDate) {
		this.dueDate = dueDate;
	}


	public String getFormKey() {
		return formKey;
	}


	public void setFormKey(String formKey) {
		this.formKey = formKey;
	}


	public String getCategory() {
		return category;
	}


	public void setCategory(String category) {
		this.category = category;
	}


	public String getFlowCategory() {
		return flowCategory;
	}


	public void setFlowCategory(String flowCategory) {
		this.flowCategory = flowCategory;
	}


	public ProcdefEntity getProcDef() {
		return procDef;
	}


	public void setProcDef(ProcdefEntity procDef) {
		this.procDef = procDef;
	}


	public ProcHiProcinstEntity getProcInstance() {
		return procInstance;
	}


	public void setProcInstance(ProcHiProcinstEntity procInstance) {
		this.procInstance = procInstance;
	}


	public Integer getSuspensionState() {
		return suspensionState;
	}


	public void setSuspensionState(Integer suspensionState) {
		this.suspensionState = suspensionState;
	}


	public String getDelegation() {
		return delegation;
	}


	public void setDelegation(String delegation) {
		this.delegation = delegation;
	}


	public String getCandidateUserIds() {
		return candidateUserIds;
	}


	public void setCandidateUserIds(String candidateUserIds) {
		this.candidateUserIds = candidateUserIds;
	}


	public String getCandidateGroupIds() {
		return candidateGroupIds;
	}


	public void setCandidateGroupIds(String candidateGroupIds) {
		this.candidateGroupIds = candidateGroupIds;
	}


	public JSONObject getFlowElement() {
		return flowElement;
	}


	public void setFlowElement(JSONObject flowElement) {
		this.flowElement = flowElement;
	}


	

}
